﻿using System;
using System.Collections.Generic;
using Gencode.Common.SQL;
using System.Data;

namespace Personalplaner
{
	public class PersonalData
	{
		public PersonalData()
		{
			Abteilungen = new List<Gencode.PrsCommon.Data.DataObjects.SimplePersonAbteilung>();
		}

		#region Implementation
		public void SaveToDatabase()
		{
            Gencode.Common.SQL.Querry stp = new Gencode.Common.SQL.Querry();
            stp.SetSTPName("set_person");

			stp.AddParameter("@mandid", Verwaltung.Mandant);
            stp.AddParameter("@vorname", Vorname);
            stp.AddParameter("@nachname", Name);
            stp.AddParameter("@strasse", Strasse);
            stp.AddParameter("@strassennr", Strassennummer);
            stp.AddParameter("@postfach", Postfach);
            stp.AddParameter("@plz", PLZ);
            stp.AddParameter("@ort", Ort);
            stp.AddParameter("@telnrp", TelefonPrivat);
            stp.AddParameter("@telnrn", TelefonNatel);
            stp.AddParameter("@email", Email);
            stp.AddParameter("@pensumvon", PensumDatumVon);
            stp.AddParameter("@pensumbis", PensumDatumBis);
            stp.AddParameter("@pensumprozent", Arbeitspensum);
            stp.AddParameter("@anstellungid", AnstellungID);
            stp.AddParameter("@persontyp", 1);

            DataView dv =  stp.ExecuteForDataView();

            int prsid = int.Parse(dv[0].Row[0].ToString());

			//Abteilungen
			foreach (Gencode.PrsCommon.Data.DataObjects.SimplePersonAbteilung abt in Abteilungen)
			{
				stp = new Gencode.Common.SQL.Querry();
				stp.SetSTPName("set_prsabteilung");

				stp.AddParameter("@abteilungid", abt.AbteilungID);
				stp.AddParameter("@prsid", prsid);
				stp.AddParameter("@von", abt.DatumVon);
				stp.AddParameter("@bis", abt.DatumBis);
				stp.AddParameter("@prozent", abt.Prozentsatz);

				stp.Execute();
			}
		}

		#endregion

		#region Persondata
		public string Name
		{
			get;
			set;
		}

		public string Vorname
		{
			get;
			set;
		}

		public string Strasse
		{
			get;
			set;
		}

		public string Strassennummer
		{
			get;
			set;
		}

		public string Postfach
		{
			get;
			set;
		}

		public string PLZ
		{
			get;
			set;
		}

		public string Ort
		{
			get;
			set;
		}

		public string TelefonPrivat
		{
			get;
			set;
		}

		public string TelefonNatel
		{
			get;
			set;
		}

		public string Email
		{
			get;
			set;
		}

#endregion

		#region PersonZusatzData
		public int Arbeitspensum
		{
			get;
			set;
		}

		public string PensumDatumVon
		{
			get;
			set;
		}

		public string PensumDatumBis
		{
			get;
			set;
		}

		public int AnstellungID 
		{
			get;
			set;
		}
		#endregion

		#region PersonAbteilung

		public List<Gencode.PrsCommon.Data.DataObjects.SimplePersonAbteilung> Abteilungen
		{
			get;
			set;
		}

		#endregion

	}
}
